const InfoList = require('../models/infoList');
let index = async ctx=>{
    //1.从数据库中查询数据
    let data =  await InfoList.find({});
    //2.渲染idnex页面，并携带data数据
    await ctx.render('index',{data:data});
}
// 渲染增加页面
let add = async ctx=>{
    await ctx.render('add');  
}
//添加数据
let doAdd = async ctx=>{
    // 1.从post请求中获取数据，并把name,dex,result筛选出来
    let {name, sex,result} = ctx.request.body;
    let data = new InfoList({
        name,
        sex,
        result
    })
    //2. 把数据添加到数据库中
    data.save(err=>{
        if(err) throw(err)
    })
    //3.跳转到首页
    await ctx.redirect("/")

}
//删除数据
let doDelete = async ctx=>{
    // 1.从url中获取id
    let id = ctx.request.query.id;
    //2.根据id,删除数据库中对应的数据
    await InfoList.deleteOne({_id:id});
    //3. 跳转到首页
    await ctx.redirect("/");
}
// 修改数据
let edit = async ctx=>{
    // 1.从url中获取id值
    let id = ctx.request.query.id;
    //2.根据id从数据库中取到数据
    let data = await InfoList.find({_id:id});

    //3.把数据携带数据渲染edit.html页面
    await ctx.render("edit",{data:data[0]});



}
// 修改
let doEdit = async ctx=>{
    // 获取数据
    let {id,name,sex,result} = ctx.request.body;
    // 跟新数据
    await InfoList.updateMany({_id:id},{name,sex,result});
    await ctx.redirect("/");

}
module.exports = {
    index,
    add,
    doAdd,
    doDelete,
    edit,
    doEdit
}